package org.lestr.secuel.sogl.maths;

import org.lestr.secuel.m3ds.IUsine;
import org.lestr.secuel.m3ds.maths.IPoint2d;

public class Point2d<E extends IPoint2d.IEcouteur<P>, P extends IPoint2d> implements IPoint2d<E, P> {


    // D�claration de constantes
    private static final long serialVersionUID = 1L;


    // D�claration des attributs
    private double x;


    private double y;


    /** Constructeur */
    public Point2d(IUsine usine) {

        // Instanciation des attributs
        x = 0;
        y = 0;

    }// FIN Constructeur


    /** Constructeur */
    public Point2d(IUsine usine,
                   IPoint2d point2d) {

        // Instanciation des attributs
        x = point2d.obtenirX();
        y = point2d.obtenirY();

    }// FIN Constructeur


    /** Constructeur */
    public Point2d(IUsine usine,
                   double x,
                   double y) {

        // Instanciation des attributs
        this.x = x;
        this.y = y;

    }// FIN Constructeur


    /** D�fini X */
    @Override
    public void définirXY(IPoint2d point2d) {

        définirXY(point2d.obtenirX(),
                  point2d.obtenirY());

    }// FIN définirXY


    /** D�fini X */
    @Override
    public void définirXY(double x,
                          double y) {

        définirX(x);
        définirY(y);

    }// FIN définirXY


    /** D�fini X */
    @Override
    public void définirX(double x) {

        this.x = x;

    }// FIN définirX


    /** Retourne X */
    @Override
    public double obtenirX() {

        return x;

    }// FIN obtenirX


    /** D�fini Y */
    @Override
    public void définirY(double y) {

        this.y = y;

    }// FIN définirY


    /** Retourne Y */
    @Override
    public double obtenirY() {

        return y;

    }// FIN obtenirY


}// FIN Classe
